package muhnes.sizoo.controlador;

import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import muhnes.sizoo.dal.FabricaDAO;
import muhnes.sizoo.dal.OperacionDao;
import muhnes.sizoo.modelo.Operacion;
import muhnes.sizoo.util.Transaccion;

/**
 * Clase controlador que se encarga de realizar las operaciones de la entidad operaion
 * 
 */
@ManagedBean(name = "operacionBean")
@ViewScoped
public class OperacionBean extends CRUDBean< Operacion, OperacionDao > 
    implements Serializable {
    
    public OperacionBean(){
        super( Operacion.class );
        vistaProtegida = "operacion";
    }

    @Override
    protected OperacionDao getDAO () {
        return FabricaDAO.crearOperacionDao();
    }

    /**
     * Verifica si la operacion a realizar es de las permitidas
     * @param transaccion de tipo transaccion
     * @return boolean que indica si se puede o no realizar
     */
    @Override
    protected boolean debeValidar (Transaccion transaccion) {
        boolean validacion = false;
        
        switch( transaccion ) {
            case INSERCION:
            case ACTUALIZACION:
            case ELIMINACION:
                validacion = true;
        }
        
        return validacion;
    }
    
}
